package Map.Map01;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 * Map集合遍历的第二种方式：使用Entry对象遍历
 *     public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
 *
 * 步骤：
 *       1、使用Map集合中的EntrySet方法，把Map种多个Entry对象取出来，放入Set集合中
 *       2、遍历Set集合，获取每个Entry对象
 *       3、使用Entry对象中的getkey()、getvalue()方法获取键与值
 *
 * */
public class EntrySet01 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("张三", 20);
        map.put("李四", 21);
        map.put("王二", 22);
        map.put("赵六", 20);
        //调用entryset方法将键与值关系的对象（Map.Entry<K v>）放入set集合中
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        //迭代器遍历键与值关系对象的set
        Iterator<Map.Entry<String, Integer>> iterator = entrySet.iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> next =  iterator.next();
            //使用next.getKey()、next.getValue()方法从键与值关系的对象取出键与值
            System.out.println(next.getKey()+"的值是："+next.getValue());
        }
        System.out.println("_____________________000______________________");
        //for循环遍历set
        for (Map.Entry<String, Integer> stringIntegerEntry : entrySet) {
            System.out.println(stringIntegerEntry.getKey()+"的值是："+stringIntegerEntry.getValue());
        }
    }
}
